package by.brest.bspc.repository;

import by.brest.bspc.domain.Student;

import java.util.List;

/**
 * This interface describes student repository.
 *
 * @date: 06/09/13 17:51
 * @author: Natallia
 */
public interface StudentRepository {

    /**
     * Saves a student into mongoDB database.
     *
     * @param student is a student
     */
    public void saveStudent(Student student);

    
    /**
     * Gets current class number of a group.
     *
     * @param groupName group name.
     * @return current class number.
     */
    public int getCurrentClassByGroupName(String groupName);

    /**
     * Gets list of students of a group.
     *
     * @param groupName group name.
     * @param semesterNumber semester number.
     * @return students list of group.
     */
    public List<Student> getStudentsList(String groupName, int semesterNumber);

    /**
     * Updates list of students in database.
     * @param studentsList list of students.
     *
     */
    public void updateStudentsList(List<Student> studentsList);

    /**
     * Updates graduated students list.
     *
     * @return students list.
     */
    public List<String> updateGraduatedStudents();
}
